Julia数据科学系列-Statistics-julia统计标准库
std
和stdm
std
计算标准差:
std(itr; corrected::Bool=true, mean=nothing[, dims])
对于
array
, 等同于sqrt(sum((itr .- mean(itr)).^2) / (length(itr) - 1))
;corrected=true
: 用n-1
进行归一化, 否则用n
;
stdm
根据已知的mean
计算std:
stdm(itr, mean; corrected::Bool=true)
var
和varm
计算方差, 与std和stdm的参数类似, 略过
cor
和cov
cor
计算皮尔森相关系数
cor(x::AbstractVector) # 自己跟自己算相关, 返回1.0
cor(X::AbstractMatrix; dims::Int=1) # 在指定维度上算相关系数矩阵
cor(x::AbstractVector, y::AbstractVector) # 最常用: 计算两个向量的相关系数
cor(X::AbstractVecOrMat, Y::AbstractVecOrMat) # 计算矩阵之间指定维度的相关系数
cov
计算协方差
cov(x::AbstractVector; corrected::Bool=true) #计算x的方差, 等于var()?
cov(X::AbstractMatrix; dims::Int=1, corrected::Bool=true) # 计算矩阵X在指定维度上的协方差矩阵
cov(x::AbstractVector, y::AbstractVector; corrected::Bool=true) # 最常用: 计算两组向量的协方差
cov(X::AbstractVecOrMat, Y::AbstractVecOrMat; dims::Int=1, corrected::Bool=true)
mean
和mean!
mean!(r, v)
# 计算v在r维度上的平均值, 并返回结果到r中:
# r 必须是跟v的相应维度等大小的ones矩阵
julia> v = [1 2; 3 4]
2×2 Matrix{Int64}:
1 2
3 4
julia> mean!([1., 1.], v)
2-element Vector{Float64}:
1.5
3.5
julia> mean!([1. 1.], v)
1×2 Matrix{Float64}:
2.0 3.0
mean(itr) # 返回向量均值, 同样不支持missing
mean(f:Function, itr) # 先用f处理itr中的每个元素, 再求均值
mean(√, [1, 2, 3]) == mean([√1, √2, √3]) # true
mean(f::Function, A::AbstractArray; dims) # 应用f, 指定dim
julia> mean(√, [1 2 3; 4 5 6], dims=2)
2×1 Matrix{Float64}:
1.3820881233139908
2.2285192400943226
julia> mean(√, [1 2 3; 4 5 6], dims=1)
1×3 Matrix{Float64}:
1.5 1.82514 2.09077
mean(A::AbstractArray; dims) # 指定dim
median
和median!
median(itr)
算中位数 median(A::AbstractArray; dims)
median!(v)
用中位数结果替换原向量。
middle
算中间值(最小和最大值的平均):
middle(x) # 单个标量的中间值是其本身
middle(x, y) # 两个实数的中间值是其平均值
middle(range) # 直接用左右极值算平均数
middle(array) # 先求极值, 再算平均
quantile!
和quantile
quantile!
quantile!([q::AbstractArray, ] v::AbstractVector, p; sorted=false, alpha::Real=1.0, beta::Real=alpha)
计算v
在p
比例的值:
如果
p
是一个向量, 可以显式声明一个变量q用来存储结果, 如果不声明, 则创建新的结果向量;sort
: v是否是sort过的;默认情况下,
alpha = beta =1
, 线性地取比例值, 与R和NumPy的行为一致, 参考:Hyndman and Fan, 1996;
:x HyndmanFan1996
Hyndman, R.J and Fan, Y. (1996) "Sample Quantiles in Statistical Packages", The American Statistician, Vol. 50, No. 4, pp. 361-365
quantile!
同上, 只是支持各种迭代类型, 而不是只支持向量
quantile(itr, p; sorted=false, alpha::Real=1.0, beta::Real=alpha)